home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Publication 8
/
Publication_08_1996_High-Tech_de_Side_B.d64
/
chess for two
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
137 lines
10 rem chess board 1.5
20 gosub20000
30 print"[147][144]";:poke53280,1:poke53281,1
1000 gosub9000
1100 gosub8500
1200 gosub11000
1300 l$=left$(t$,2):gosub12000
1310 iff<>0then1400
1320 print:print"sorry, no piece there."
1330 fori=1to1000:next:goto1200
1400 d$(f)=right$(t$,2)
1405 fori=1to10
1410 f$=left$(t$,2):d=d(f)
1420 gosub8000
1430 f$=right$(t$,2):d=0
1440 gosub8000
1450 f$=left$(t$,2):d=0
1460 gosub8000
1470 f$=right$(t$,2):d=d(f)
1480 gosub8000
1490 next
1500 goto1200
7999 end
8000 rem setup a piece
8040 t=abs(d):ifd<0thent=t+9
8050 q$=p$(t)
8080 x=asc(f$)-64:y=val(right$(f$,1))
8100 g=x+y
8120 r$=""
8140 ifg/2<>int(g/2)thenr$=""
8160 printleft$(d$,4+2*(8-y));spc(4+(4*(x-1)));r$;q$;"[146]"
8200 return
8500 rem setup board
8520 fori=1to34
8540 ifd$(i)=""then8600
8550 f$=d$(i):d=d(i)
8570 gosub8000
8600 next
8650 return
9000 print" chess for two"
9003 print" a b c d e f g h "
9005 print" [166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166]"
9010 fori=1to4
9020 forj=1to2
9025 a$=" "
9030 ifj=2thena$=chr$(58-2*i)
9040 print" "a$" [166]";
9050 fork=1to4:print" [146] ";:next
9060 print"[166] "a$
9070 next
9080 forj=1to2
9085 a$=" "
9090 ifj=2thena$=chr$(57-2*i)
9100 print" "a$" [166]";
9110 fork=1to4:print" [146]";:next
9120 print"[166] "a$
9130 next
9140 next
9150 print" [166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166]"
9155 print" a b c d e f g h "
9160 return
10000 rem winking get
10010 print"[166][157]";
10020 fori=1to50
10030 gets$:ifs$<>""then10100
10040 next
10050 print" [157]";
10060 fori=1to50
10070 gets$:ifs$<>""then10100
10080 next
10090 goto10010
10100 print" [157]";
10140 return
11000 rem gets a move
11010 printd$;e$:printe$;d$"enter move? ";
11015 t$=""
11020 forj=1to4
11030 gosub10000
11040 s=asc(s$)
11050 if(j=1orj=3)and(s<65ors>72)then11200
11060 if(j=2orj=4)and(s<49ors>56)then11200
11080 prints$;:t$=t$+s$
11090 next
11100 print" ok, (hit return)"
11110 gosub10000
11120 ifs$<>chr$(13)then11010
11180 return
11200 print:print"bad entry, try again";
11210 fori=1to1000:next
11220 goto11010
12000 rem check piece
12010 f=0
12020 fori=1to34
12030 ifd$(i)=l$thenf=i
12040 next
12050 return
20000 dim p$(18),d(34),d$(34)
20010 fori=0to18:read p$(i):next
20020 fori=1to34:read d(i),d$(i):next
20030 d$="":fori=1to21:d$=d$+"":next
20040 fori=1to39:e$=e$+" ":next
20050 fori=1to39:e$=e$+"[157]":next
21000 return
30000 rem piece data
30005 data" [157][157][157][157] "
30010 data" [178][178] [157][157][157][157] [202][203] "
30020 data" [205][164][206][157][157][157][157][167][206] "
30030 data"[167] [206][165][157][157][157][157][167][206][205][165]"
30040 data""
30050 data" [204][186] [157][157][157][157][167][176][174][165]"
30060 data""
30070 data""
30080 data" [204][186] [157][157][157][157][206][214][214][205]"
30090 data" [204][186] [157][157][157][157][167][219][219][165]"
30110 data" [213][201] [157][157][157][157] [177][177] "
30120 data" [206][165][157][157][157][157][206][163][205] "
30130 data"[167][205][206][165][157][157][157][157][167][206] [165]"
30140 data""
30150 data"[167][173][189][165][157][157][157][157] [207][208] "
30160 data""
30170 data""
30180 data"[205][214][214][206][157][157][157][157] [207][208] "
30190 data"[167][219][219][165][157][157][157][157] [207][208] "
31000 rem board data
31010 data 1,a7, 1,b7, 1,c7, 1,d7, 1,e7, 1,f7, 1,g7, 1,h7
31020 data 2,b8, 2,g8
31030 data 3,c8, 3,f8
31050 data 5,a8, 5,h8
31080 data 8,d8, 8,""
31090 data 9,e8
31110 data -1,a2,-1,b2,-1,c2,-1,d2,-1,e2,-1,f2,-1,g2,-1,h2
31120 data -2,b1,-2,g1
31130 data -3,c1,-3,f1
31150 data -5,a1,-5,h1
31180 data -8,d1,-8,""
31190 data -9,e1